<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui">

<ui:composition template="/template.xhtml" >
    
    
    <f:metadata>        
        <!--
        <f:event type="preRenderView" listener="#{notaPedidoPresupuestoBean.iniciarVariables('0200','0100','FC','NP001')}" />         
        -->
    </f:metadata>

    <ui:define name="titulo" >
        - Nota de Pedido
    </ui:define>

    <ui:define name="contenido" >
                        
                <h:form id="formulario" prependId="false">
            
            <p:remoteCommand name="procesarCliente"  process="@this" update="@form" actionListener="#{notaPedidoPresupuestoBean.procesarCliente}" />
            <p:remoteCommand name="procesarProducto" process="@this" update="@form" actionListener="#{notaPedidoPresupuestoBean.procesarProducto}" />
 
            <!-- MENU -->
            <p:menubar id="menuBar">
               <p:menuitem value="Nuevo" icon="blank16" id="btnNew"
                           action="#{notaPedidoPresupuestoBean.nuevoMovimiento}"
                           process="@this"
                           update="@form" />
                <p:menuitem value="Guardar" icon="save16"
                            action="#{notaPedidoPresupuestoBean.guardar(false)}"
                            rendered="#{not notaPedidoPresupuestoBean.m.persistido }"
                            update="@form" />
                <p:menuitem value="Guardar y Nuevo" icon="saveNew16"
                            action="#{notaPedidoPresupuestoBean.guardar(true)}"
                            rendered="#{not notaPedidoPresupuestoBean.m.persistido }"
                            oncomplete="btnNew.click()"
                            update="@form" />
                <p:menuitem value="Imprimir" icon="print16"
                            action="#{notaPedidoPresupuestoBean.imprimir}"
                            rendered="#{notaPedidoPresupuestoBean.m.persistido }"
                            ajax="false" target="blank" >
                </p:menuitem>
            </p:menubar>
            
            <p:sticky target="menuBar" />
            
            <p:messages showDetail="true" />
            
            <p:spacer width="100%" height="1em" />            
            
            <p:panel header="Datos" >               
                <!-- CABECERA -->
                <div class="ui-grid-responsive " >

                    <div class="ui-grid-row" > 
                        <div class="ui-grid-col-12">                            
                            <h:panelGrid columns="6" columnClasses="colLabel10,colDato20,colLabel10,colDato20,colLabel10,colDato20" 
                                         cellspacing="10"
                                         style="width: 100%; border: none;"  >                            

                                <h:outputText value="Formulario" />
                                <h:outputText value="#{notaPedidoPresupuestoBean.m.formulario.descripcion}" />

                                <h:outputText value="Número" />
                                <h:outputText value="#{notaPedidoPresupuestoBean.m.numeroFormulario}" >
                                    <f:convertNumber pattern="00000000" />
                                </h:outputText>

                                <h:outputText value="Fecha" />
                                <h:outputText value="#{notaPedidoPresupuestoBean.m.fechaMovimiento}" >
                                    <f:convertDateTime pattern="dd/MM/yyyy" />
                                </h:outputText>                

                                <h:outputText value="Cliente" />
                                <h:panelGroup layout="block">
                                    <p:commandButton icon="ui-icon-search" oncomplete="PF('dlg_entidad').show()" process="@this" />
                                    <p:inputText value="#{notaPedidoPresupuestoBean.m.cliente.razonSocial}" style="width: 80%;" />                    
                                </h:panelGroup>
                                <h:outputText value="Nombre Fantasía" />
                                <h:outputText value="#{notaPedidoPresupuestoBean.m.cliente.nombreFantasia}" />                                
                                <h:outputText value="Vendedor" />
                                <h:outputText value="#{notaPedidoPresupuestoBean.m.vendedor.descripcion}" />                                                    

                                <h:outputText value="Situación IVA" />
                                <h:outputText value="#{notaPedidoPresupuestoBean.m.condicionDeIva.descripcion}" />                    
                                <h:outputText value="Tipo Documento" />
                                <h:outputText value="#{notaPedidoPresupuestoBean.m.cliente.tipoDocumento.codigo}" />                    
                                <h:outputText value="Nro Documento" />
                                <h:outputText value="#{notaPedidoPresupuestoBean.m.cliente.nrodoc}" />                    

                                <h:outputText value="Lista de precios" />
                                <h:outputText value="#{notaPedidoPresupuestoBean.m.listaDePrecio.codigo}" />                    
                                <h:outputText value="Cotización" />
                                <h:outputText value="#{notaPedidoPresupuestoBean.m.cotizacion}" />
                                <h:outputText value="Condición de pago" />
                                <h:outputText value="#{notaPedidoPresupuestoBean.m.condicionDePago.descripcion}" />                    

                            </h:panelGrid>
                        </div>
                    </div>
                </div>                        
            </p:panel>
            
            <p:spacer width="100%" height="1em" />
                        
            <!-- DETALLE -->
            <p:tabView>
                <p:tab title="Items">  
                    
                    <p:dataTable id="detalle" value="#{notaPedidoPresupuestoBean.m.itemsProducto}" var="i" >
                        <p:column headerText="Item" width="5%" >
                            <h:outputText value="#{i.nroitm}" />
                        </p:column>
                        <p:column headerText="Producto" width="45%" >
                            <p:commandButton icon="ui-icon-search" oncomplete="PF('dlg_producto').show()" 
                                             process="@this" 
                                             rendered="#{not i.todoOk and not empty notaPedidoPresupuestoBean.m.listaDePrecio}" />
                            <h:outputText value="#{buscadorProductoBean.producto.descripcion}"  rendered="#{empty i.producto}"/>
                            <h:outputText value="#{i.producto.descripcion}" rendered="#{not empty i.producto}"/>
                        </p:column>
                        <p:column headerText="Cantidad" width="10%" >
                            <p:inputText  value="#{i.cantidad}" rendered="#{not empty i.producto}" style="width: 98%;text-align: right;" >
                                <f:convertNumber pattern="#{i.producto.unidadDeMedida.formato}" />
                                <p:ajax listener="#{notaPedidoPresupuestoBean.calcularImportes}" event="keyup"
                                        update="total,:formulario:totales" />
                                <p:ajax listener="#{notaPedidoPresupuestoBean.sincronizarCantidades}" event="keyup"  />
                            </p:inputText>
                        </p:column>
                        <p:column headerText="U.M." width="5%" style="text-align: center;" >
                            <h:outputText  value="#{i.unidadMedida.codigo}" rendered="#{not empty i.producto}" />                            
                        </p:column>
                        
                        <p:column headerText="Stock" width="5%" style="text-align: center;" >
                            <p:commandButton icon="ui-icon-search"  process="@this" rendered="#{i.todoOk}" />
                        </p:column>
                        
                        <p:column headerText="% Precio"  width="10%" >
                            <p:inputText id="precio"  value="#{i.precio}" rendered="#{not empty i.producto}" style="width: 98%;text-align: right;" >
                                <f:convertNumber pattern="###,###,##0.00" />
                                <p:ajax listener="#{notaPedidoPresupuestoBean.calcularImportes}" event="keyup" 
                                        update="total,:formulario:totales" />
                            </p:inputText>
                        </p:column>
                        <p:column headerText="% Bonif." width="10%" style="text-align: right;" >
                            <p:inputText  value="#{i.porcentajeBonificacion1}" rendered="#{not empty i.producto}" style="width: 98%;text-align: right;" >
                                <f:convertNumber pattern="###,###,##0.00" />
                                <p:ajax listener="#{notaPedidoPresupuestoBean.calcularImportes}" event="keyup" 
                                        update="total,:formulario:totales" />
                            </p:inputText>                            
                        </p:column>
                        <p:column headerText="Total" width="10%" style="text-align: right;" >
                            <h:outputText id="total" value="#{i.totalLinea}" >
                                <f:convertNumber pattern="###,###,##0.00" />
                            </h:outputText>
                        </p:column>
                        
                        <p:column headerText="Acción" width="5%" style="text-align: center;" >
                            
                            <p:commandButton icon="ui-icon-plus" process="detalle" update="@form"
                                             actionListener="#{notaPedidoPresupuestoBean.agregarItem(i)}" 
                                             rendered="#{not i.todoOk}" />
                            
                            <p:commandButton icon="ui-icon-close" process="detalle" update="@form"
                                             actionListener="#{notaPedidoPresupuestoBean.eliminarItem(i)}" 
                                             rendered="#{i.todoOk}" />
                        </p:column>
                        
                    </p:dataTable>
                    
                </p:tab>
                             
                <p:tab title="Dirección de entrega">
                    
                </p:tab>
                
            </p:tabView>
            
            <p:spacer width="100%" height="1em" />
            
            <p:panel id="totales" header="Importes">
                
                <div class="ui-grid-responsive " >                
                    <div class="ui-grid-row" style="font-size: 1.2em; padding: 1em;" >     
                        <div class="ui-grid-col-2">
                            <h:outputText value="Subtotal:   " />
                            <h:outputText value="#{notaPedidoPresupuestoBean.m.impBruto}" styleClass="textoImporte" >    
                                <f:convertNumber pattern="$ ###,###,##0.00" />
                            </h:outputText>
                        </div>
                        <div class="ui-grid-col-2">
                            <h:outputText value="IVA 21 %:   " />
                            <h:outputText value="#{notaPedidoPresupuestoBean.m.impIva2100}" styleClass="textoImporte" >  
                                <f:convertNumber pattern="$ ###,###,##0.00" />
                            </h:outputText>
                        </div>
                        <div class="ui-grid-col-2">
                            <h:outputText value="IVA 10.5%:   " />                            
                            <h:outputText value="#{notaPedidoPresupuestoBean.m.impIva1050}" styleClass="textoImporte" >  
                                <f:convertNumber pattern=" $ ###,###,##0.00" />
                            </h:outputText>
                        </div>
                        <div class="ui-grid-col-2">
                            <h:outputText value="Percepciones:   " />
                            <h:outputText value="#{0}" styleClass="textoImporte" >  
                                <f:convertNumber pattern="$ ###,###,##0.00" />
                            </h:outputText>
                        </div>
                        <div class="ui-grid-col-2"></div>
                        
                        <div class="ui-grid-col-2">
                            <h:outputText value="Total:   " />
                            <h:outputText value="#{notaPedidoPresupuestoBean.m.importeTotal}" styleClass="textoImporte"  >  
                                <f:convertNumber pattern="$ ###,###,##0.00" />
                            </h:outputText>
                        </div>
                    </div>
                </div>
                
            </p:panel>
            
            
        </h:form>
        
    </ui:define>
    
    <ui:define name="dialogos" >
        <ui:include src="/entidad/buscadorEntidad.xhtml" />
        <ui:include src="/inventario/buscadorProducto.xhtml" />
        
        
        <p:dialog id="buscadorPendiente" header="Selección de pendientes"
              widgetVar="dlg_pendiente"
              resizable="false"
              draggable="false"
              position="top"
              showEffect="slide" hideEffect="slide"
              style="max-width: 900px; min-height: 500px;"
              width="80%"
              visible="#{notaPedidoPresupuestoBean.seleccionaPendiente}">

        <h:form prependId="false" >
            
            <p:wizard widgetVar="wiz" style="min-height: 400px;"                       
                      flowListener="#{notaPedidoPresupuestoBean.procesoSeleccionPendientes}"
                      showNavBar="true" showStepStatus="false"
                      backLabel="Atrás" nextLabel="Siguiente" >

                <p:tab id="filtro" title="Aplicar filtros" >

                    <p:messages showDetail="true" />

                    <h:panelGrid columns="2" >

                        <h:outputText value="Cliente:" />
                        <p:inputText value="#{notaPedidoPresupuestoBean.nrocta}" >
                            <f:convertNumber pattern="0" />
                        </p:inputText>

                    </h:panelGrid>

                </p:tab>


                <p:tab id="seleccion" title="Seleccionar Movimientos Pendientes">

                    <p:messages showDetail="true" />

                    <p:dataTable value="#{notaPedidoPresupuestoBean.movimientosPendientes}" var="m"
                                 scrollable="true" emptyMessage="No se encontraron documentos"
                                 scrollHeight="120"  >        

                        <p:column headerText="Cliente"  width="10%" >
                            <h:outputText value="#{m.cliente.nrocta} - #{m.cliente.nombreFantasia}" />
                        </p:column>

                        <p:column headerText="Condición Pago" width="20%"  >
                            <h:outputText value="#{m.cndpag} - #{m.condicionDePago.descripcion}" />                                
                        </p:column>
                        
                        <p:column headerText="Cant. Pendientes" width="10%" >
                            <h:outputText value="#{m.pendiente}" />                               
                        </p:column>

                        <p:column headerText="Seleccionar" width="60" style=" text-align: center;" >
                            <p:commandButton icon="ui-icon-search" id="seleMovim"
                                             actionListener="#{notaPedidoPresupuestoBean.seleccionarItemPendiente(m, true)}"
                                             update="@form" process="@this" styleClass="btnTabla" />
                        </p:column>

                    </p:dataTable>

                    <p:spacer height="10" />

                    <p:dataTable id="tblDetalle" value="#{notaPedidoPresupuestoBean.itemsPendiente}" var="i"
                                 scrollable="true" scrollHeight="200"
                                 emptyMessage="No se encontraron items pendientes" >

                        <p:column headerText="Tipo" width="10%" >
                            <h:outputText value="#{i.codfor}" />
                        </p:column>
                        
                        <p:column headerText="Número" width="10%" >
                            <h:outputText value="#{i.nrofor}" >
                                <f:convertNumber pattern="00000000" />
                            </h:outputText>
                        </p:column>
                        
                        <p:column headerText="Fecha" width="10%" >
                            <h:outputText value="#{i.fchmov}" >
                                <f:convertDateTime pattern="dd/MM/yyyy" />
                            </h:outputText>
                        </p:column>
                        
                        <p:column headerText="Código" width="10%" >
                            <h:outputText value="#{i.producto.codigo}" />
                        </p:column>

                        <p:column headerText="Descripción"  width="50%" >
                            <h:outputText value="#{i.producto.descripcion}" />
                        </p:column>

                        <p:column headerText="Cantidad" style="text-align: right;" width="10%" >
                            <h:outputText value="#{i.cantidad}" style="text-align: right" >
                                <f:convertNumber pattern="0" />
                            </h:outputText>
                        </p:column>

                        <p:column headerText="U.M." style="text-align: right;" width="5%" >
                            <h:outputText value="#{i.producto.unidadDeMedida.codigo}" />
                        </p:column>

                        <p:column style="text-align: right;" width="5%">
                            <f:facet name="header">
                                <p:selectBooleanCheckbox value="#{notaPedidoPresupuestoBean.seleccionaTodo}" >
                                    <p:ajax event="change" listener="#{notaPedidoPresupuestoBean.seleccionarTodo}"
                                            update="@form" process="@this"/>
                                </p:selectBooleanCheckbox>
                            </f:facet>

                            <p:selectBooleanCheckbox value="#{i.seleccionado}" />
                        </p:column>

                    </p:dataTable>

                </p:tab>
            </p:wizard>
            
            <div style="width: 100%; text-align: right; padding-top: 5px;">
                <p:commandButton icon="ui-icon-check"  value="Finalizar"
                                 process="@form" 
                                 update="@form, :formulario"
                                 oncomplete="PF('dlg_pendiente').hide()"
                                 rendered="#{not empty notaPedidoPresupuestoBean.itemsPendiente}"
                                 actionListener="#{notaPedidoPresupuestoBean.finalizarProcesoSeleccionPendiente}"/>
            </div>

            
        </h:form>

    </p:dialog>
        
        
    </ui:define>

</ui:composition>
</html>

